﻿using System;
using System.Collections.Generic;
using System.Text;

namespace BCEntity.Common.Payment.WeChatPayBill.WxPayBillDetail
{
    /// <summary>
    /// 微信支付账单明细
    /// </summary>
    public class WxPayBillDetailEntity
    {
        /// <summary>
        /// 微信支付账单明细Id
        /// </summary>
        public long WxPayBillDetailId { get; set; }
        /// <summary>
        /// 交易日期
        /// </summary>
        public DateTime TradeDate { get; set; }
        /// <summary>
        /// 交易时间
        /// </summary>
        public DateTime TradeTime { get; set; }
        /// <summary>
        /// 微信订单号
        /// </summary>
        public string WxOrderNo { get; set; }
        /// <summary>
        /// 商户订单号
        /// </summary>
        public long PaymentRecordId { get; set; }
        /// <summary>
        /// 应用名称
        /// </summary>
        public string AppName { get; set; }
        /// <summary>
        /// 公众账号Id
        /// </summary>
        public string AppId { get; set; }
        /// <summary>
        /// 商户号
        /// </summary>
        public string MchId { get; set; }
        /// <summary>
        /// 特约商户号
        /// </summary>
        public string SpecificMchId { get; set; }
        /// <summary>
        /// 设备号
        /// </summary>
        public string DeviceNo { get; set; }
        /// <summary>
        /// 用户标识
        /// </summary>
        public string WxUserNo { get; set; }
        /// <summary>
        /// 交易类型
        /// </summary>
        public string TradeType { get; set; }
        /// <summary>
        /// 交易类型
        /// </summary>
        public string TradeTypeStr { get; set; }
        /// <summary>
        /// 交易状态
        /// </summary>
        public string TradeStatus { get; set; }
        /// <summary>
        /// 交易状态
        /// </summary>
        public string TradeStatusStr { get; set; }
        /// <summary>
        /// 付款银行
        /// </summary>
        public string PayerBank { get; set; }
        /// <summary>
        /// 付款银行
        /// </summary>
        public string PayerBankStr { get; set; }
        /// <summary>
        /// 货币种类
        /// </summary>
        public string CurrencyCode { get; set; }
        /// <summary>
        /// 货币种类
        /// </summary>
        public string CurrencyCodeStr { get; set; }
        /// <summary>
        /// 应结账单金额
        /// </summary>
        public decimal PaySingleAmount { get; set; }
        /// <summary>
        /// 代金券金额
        /// </summary>
        public decimal CouponAmount { get; set; }
        /// <summary>
        /// 微信退款单号
        /// </summary>
        public string RefundOrderNo { get; set; }
        /// <summary>
        /// 商户退款单号
        /// </summary>
        public string MchRefundOrderNo { get; set; }
        /// <summary>
        /// 退款金额
        /// </summary>
        public decimal? RefundAmount { get; set; }
        /// <summary>
        /// 充值卷退款金额
        /// </summary>
        public decimal? RechargeRefundAmount { get; set; }
        /// <summary>
        /// 退款类型
        /// </summary>
        public string RefundType { get; set; }
        /// <summary>
        /// 退款状态
        /// </summary>
        public string RefundStatus { get; set; }
        /// <summary>
        /// 商品名称
        /// </summary>
        public string GoodsName { get; set; }
        /// <summary>
        /// 商户数据包
        /// </summary>
        public string MchDataPackage { get; set; }
        /// <summary>
        /// 手续费
        /// </summary>
        public decimal HandlingFee { get; set; }
        /// <summary>
        /// 费率
        /// </summary>
        public int FeeRate { get; set; }
        /// <summary>
        /// 费率描述
        /// </summary>
        public string FeeRateStr { get; set; }
        /// <summary>
        /// 费率备注
        /// </summary>
        public string FeeRateRemark { get; set; }
        /// <summary>
        /// 订单金额
        /// </summary>
        public decimal OrderAmount { get; set; }
        /// <summary>
        /// 申请退款金额
        /// </summary>
        public decimal? ApplyRefundAmount { get; set; }
        /// <summary>
        /// 实际收款金额
        /// </summary>
        public decimal ActualReceiveAmount { get; set; }
        /// <summary>
        /// 账单获取时间
        /// </summary>
        public DateTime CreateTime { get; set; }
        /// <summary>
        /// 退款申请时间
        /// </summary>
        public DateTime? ApplyRefundTime { get; set; }
        /// <summary>
        /// 退款成功时间
        /// </summary>
        public DateTime? RefundSuccessTime { get; set; }
        /// <summary>
        /// 已对账
        /// </summary>
        public bool IsSettle { get; set; }
    }
}
